// state.State.h

#ifndef _STATE_State_H_
#define _STATE_State_H_

#ifndef _STATE_Defines_H_
#include "StateDefines.h"
#endif

namespace CORE
{
	class Time;
};

struct IRenderingEngine;

namespace STATE
{

class State
{
public:

	virtual ~State() {}

	// APIs
	virtual void	Enter() = 0;
	virtual void	Leave() = 0;

	virtual StateId	Update( CORE::Time & TimeDelta ) = 0;
	virtual void	Render( IRenderingEngine * pRenderer ) = 0;

private:
};

}; // namespace STATE

#endif